const Article = require("../model/article");
const Tag = require("../model/tag");

class webController {
    static async renderLogin(ctx) {
        await ctx.render('login',)
    }
    static async renderIndex(ctx) {
        const { tag_id, user_id } = ctx.request.query;
        let articles = []
        let tags = await Tag.findAll({
            attributes: ['id', 'title', 'user_id'],
            order: [
                ['updatetime', 'DESC']
            ],
            where: {
                user_id: user_id
            }
        })
        if (tag_id) {
            articles = await Article.findAll({
                attributes: ['id', 'title', 'user_id'],
                where: {
                    tag_id: tag_id,
                    user_id: user_id
                },
                order: [
                    ['updatetime', 'DESC']
                ]
            })
        } else {
            articles = await Article.findAll({
                attributes: ['id', 'title', 'user_id', 'tag_id', 'content', 'createtime', 'updatetime'],
                order: [
                    ['updatetime', 'DESC']
                ],
                where: {
                    user_id
                }
            });
        }
        await ctx.render('index', {
            articles,
            tags,
            user_id
        })
    }

    static async renderArticle(ctx) {
        let { user_id,id } = ctx.request.query;
        const article = await Article.findOne({
            where: {
                id
            }
        })
        await ctx.render('markdown', {
            article,
            user_id
        })
    }

    static async renderPost(ctx) {
        let { user_id } = ctx.request.query;
        let tags = await Tag.findAll({
            attributes: ['id', 'title', 'user_id'],
            where: {
                user_id
            }
        })
        await ctx.render('post', {
            tags,
            user_id
        })
    }

    static async renderTags(ctx) {
        const { user_id } = ctx.request.query
        try {
            var tags = await Tag.findAll({
                attributes: ['id', 'title', 'createtime', 'updatetime'],
                order: [
                    ['updatetime', 'DESC']
                ],
                where: {
                    user_id
                }
            })
            console.log('tags',tags);
            await ctx.render('tags', {
                tags,
                user_id
            })
        } catch (error) {
            await ctx.render('tags', {
                error
            })
        }
    }
    //获取登录用户的文章
    static async renderArticles(ctx) {
        let { user_id, is_active } = ctx.request.query;
        let articles = await Article.findAll({
            attributes: ['id', 'title', 'user_id', 'tag_id', 'content', 'is_active', 'createtime', 'updatetime'],
            order: [
                ['updatetime', 'DESC']
            ],
            where: {
                is_active: is_active == 0 ? is_active : true,
                user_id
            }
        })
        await ctx.render('articles', {
            articles,
            user_id,
            is_active: is_active == 0 ? is_active : 1,
        })
    }
}

module.exports = webController